package ludoxia.classe
{
	import fl.core.UIComponent;
	
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.net.URLRequest;
	
	import spark.effects.Move;

	public class joueur
	{
		
		public var component:UIComponent;
		public var swcComponent:Personnage;
		
		private var _move:Move;
		
		private var _nom:String;
		[Bindable]
		public var _score:uint;
		
		//private var _positionActuel:position;
		private var _x:int;
		private var _y:int;
		private var _changedHeight:int;
		private var _vitesse:uint;
		private var _image:String;
		private var _speedy:Boolean = false;
		
		//composant flash
		
		public function joueur()
		{
			
			_score = 0;
			
			swcComponent = new Personnage();
			swcComponent.width = 80;
			swcComponent.height = 80;
			
			component = new UIComponent();
			component.addChild(swcComponent);
			
			PositionX = 2;
			PositionY = 2;
			component.y = (_y * terrain.correspondancePixel) + terrain.yOrigine;
			
			_vitesse = 1;
			

		}
		
		/* Méthodes */
		public function Avancer(Avancement:int = 1):void{
			_x = (_x + Avancement) % terrain.largeur;
		}
		
		public function Tourner(Hauteur:int):void{
			_changedHeight = Hauteur;
			_move.end();
			if ((Hauteur > 0) && (_y < (terrain.hauteur - 1))){
				PositionY += Hauteur;
				_move.play();
			}
			else if ((Hauteur < 0) && (_y > 0)){
				PositionY += Hauteur;
				_move.play();
			}
			//appeler une méthode composant flash
		}
		/* Fin Méthodes */
		
		/* Propriétés */
		public function get Nom():String{
			return _nom;
		}
		
		public function set Nom(value:String):void{
			_nom = value;
		}
		
		public function get Score():uint{
			return _score;
		}
		
		public function set Score(value:uint):void{
			_score = value;
			trace(_score);
		}
		
		public function get Vitesse():uint{
			return _vitesse;
		}
		
		public function set Vitesse(value:uint):void{
			_vitesse = value;
			if((_vitesse > 1) && (!_speedy)){
				this.swcComponent.singeA.startSpeed();
				_speedy = true;
			}else if((_vitesse < 2) && (_speedy)){
				this.swcComponent.singeA.startSpeed();
				_speedy = false;
			}
		}
		
		public function get PositionX():int{
			return _x;
		}
		
		public function set PositionX(value:int):void{
			_x = value;
			component.x = (terrain.largeur - _x) * terrain.correspondancePixel;
		}
		
		public function get PositionY():int{
			return _y;
		}
		
		public function set PositionY(value:int):void{
			_y = value;
			
			_move = new Move();
			_move.duration = 200;
			_move.target = swcComponent;
			if(_changedHeight == -1)
				_move.yBy = -terrain.correspondancePixel;
			else
				_move.yBy = terrain.correspondancePixel;
//			SpriteJoueur.y = _y * terrain.correspondancePixel;
		}
		/* Fin Propriétés */
	}
}